﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;

namespace GiangDay
{
    public partial class FrMonHoc : DevComponents.DotNetBar.Office2007Form
    {
        DB db = new DB();
        FunctionLinh fun = new FunctionLinh();
        public FrMonHoc()
        {
            InitializeComponent();
        }     

        private void FrMonHoc_Load(object sender, EventArgs e)
        {
            dgmonhoc.DataSource = fun.loadMonHoc();
            cbLoai.SelectedIndex = 0;
        }
     
        private void cbLythuyet_CheckedChanged(object sender, EventArgs e)
        {
            if (cbLythuyet.Checked == true)
            {
                tbLythuyet.Enabled = true;
            }

            else tbLythuyet.Enabled = false;
        }
        private void resetText()
        {
            tbMamon.Clear();          
            tbTenmon.Clear();
            tbSotc.Clear();
            cbLythuyet.Checked = false;
            cbThuchanh.Checked = false;
            tbLythuyet.Clear();
            tbThuchanh.Clear();
            lb_thongbao.Text = "";
        }
        private void cbThuchanh_CheckedChanged(object sender, EventArgs e)
        {
            if (cbThuchanh.Checked == true)
            {
                tbThuchanh.Enabled = true;
            }

            else tbThuchanh.Enabled = false;
        }

        private void btThem_Click(object sender, EventArgs e)
        {
            resetText();   
            tbMamon.Enabled = true;        //Enable mã môn  
           
            btHuy.Enabled = true;          //Enable button Hủy 
            dgmonhoc.Enabled = false;
                     
            btThem.Enabled = false;
            btSua.Enabled = false;
            btXoa.Enabled = false;
            btLuu.Enabled = true;
            btThem.Enabled = false;

            tbMamon.Focus();  //Focus mã số
        }
        private bool validateMonhoc()
        {
            //kiểm tra dữ liệu
            if (tbMamon.Text.Trim() == "")
            {
                lb_thongbao.Text = "Lỗi: Chưa nhập mã môn học!";
                System.Media.SystemSounds.Beep.Play();
                tbMamon.Focus();
                return false;
            }
            if (tbMamon.Text.Trim().Length < 3 || tbMamon.Text.Trim().Length > 5)
            {
                lb_thongbao.Text = "Lỗi: Mã số 3-5 ký tự!";
                System.Media.SystemSounds.Beep.Play();
                tbMamon.Focus();
                return false;
            }
            //Kiểm tra tên môn
            if (tbTenmon.Text.Trim() == "")
            {
                lb_thongbao.Text = "Lỗi: Chưa nhập tên môn học!";
                System.Media.SystemSounds.Beep.Play();
                tbTenmon.Focus();
                return false;
            }
            //Kiểm tra số tín chỉ
            if (tbSotc.Text.Trim() == "")
            {
                lb_thongbao.Text = "Lỗi: Chưa nhập số tín chỉ!";
                System.Media.SystemSounds.Beep.Play();
                tbSotc.Focus();
                return false;
            }
            if (int.Parse(tbSotc.Text.Trim()) <= 0)
            {
                lb_thongbao.Text = "Lỗi: Số tín chỉ phải >=0 !";
                System.Media.SystemSounds.Beep.Play();
                tbSotc.Focus();
                return false;
            }
            //Kiểm tra số tiết
            if (!cbLythuyet.Checked && !cbThuchanh.Checked)
            {
                lb_thongbao.Text = "Lỗi: Chưa chọn số tiết!";
                System.Media.SystemSounds.Beep.Play();
                return false;
            }
            if (cbLythuyet.Checked)
            {
                if (tbLythuyet.Text.Trim() == "")
                {
                    lb_thongbao.Text = "Lỗi: Chưa nhập số tiết!";
                    System.Media.SystemSounds.Beep.Play();
                    return false;
                }
                if (Int32.Parse(tbLythuyet.Text.Trim()) <= 0)
                {
                    lb_thongbao.Text = "Lỗi: Số tiết lý thuyết >=0!";
                    System.Media.SystemSounds.Beep.Play();
                    return false;
                }
            }
            if (cbThuchanh.Checked)
            {
                if (tbThuchanh.Text.Trim() == "")
                {
                    lb_thongbao.Text = "Lỗi: Chưa nhập số tiết!";
                    System.Media.SystemSounds.Beep.Play();
                    return false;
                }
                if (Int32.Parse(tbThuchanh.Text.Trim()) <= 0)
                {
                    lb_thongbao.Text = "Lỗi: Số tiết thực hành >=0!";
                    System.Media.SystemSounds.Beep.Play();
                    return false;
                }
            }
            return true;
        }
        private void btLuu_Click(object sender, EventArgs e)
        {
            if (!validateMonhoc()) return;
          
            //kiểm tra tồn tại mã học vị
            if (db.ktra_tontai(tbMamon.Text.Trim(), "MA_MON", "MON_HOC"))
            {
                lb_thongbao.Text = "Lỗi: Mã môn học đã tồn tại!";
                System.Media.SystemSounds.Beep.Play();
                tbMamon.Focus();
                return;
            }
            

            lb_thongbao.Text = "";
            //Them CSDL
            fun.themMonHoc(tbMamon.Text.Trim(), tbTenmon.Text.Trim(), int.Parse(tbSotc.Text.Trim()));
            if (cbLythuyet.Checked)
                fun.themLythuyet(tbMamon.Text.Trim(), "LT", int.Parse(tbLythuyet.Text.Trim()));
            if (cbThuchanh.Checked)
                fun.themLythuyet(tbMamon.Text.Trim(), "TH", int.Parse(tbThuchanh.Text.Trim()));
           // DataGridViewRow rows = new DataGridViewRow();
           // rows = (DataGridViewRow)fun.loadRowInsert(tbMamon.Text.Trim());
           // dgmonhoc.Rows.Insert(dgmonhoc.Rows.Count, "MH005","LYER","4","4"//,"4","4");    
            dgmonhoc.DataSource = fun.loadMonHoc();
           // dgmonhoc.CurrentCell = dgmonhoc.Rows[dgmonhoc.Rows.Count-1].Cells[0];
           // dgmonhoc.Rows.Add("MH001","LY THUYET XEP HANG");
            tbMamon.Clear();
            tbMamon.Enabled = false;
            tbTenmon.Clear();
            btLuu.Enabled = false;
            btThem.Enabled = true;
            btSua.Enabled = true;
            btXoa.Enabled = true;
            dgmonhoc.Enabled = true;
            }

        private void Number_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsNumber(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                System.Media.SystemSounds.Beep.Play();
                lb_thongbao.Text = "Lỗi: Dữ liệu phải là số!";
                e.Handled = true;
            }
            else if (lb_thongbao.Text == "Lỗi: Dữ liệu phải là số!")
                lb_thongbao.Text = "";
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
            if (tbMamon.Text.Trim() == "")
            {
                MessageBox.Show("Chưa chọn Môn học cần xóa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (MessageBoxEx.Show("Bạn muốn xóa môn học: "+ dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["TEN_MON"].Value.ToString(), "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
            {
                return;
            }
            fun.xoaMonHoc(tbMamon.Text.Trim());
            dgmonhoc.Rows.RemoveAt(dgmonhoc.CurrentRow.Index);
            tbMamon.Clear();
            tbTenmon.Clear();
            btXoa.Enabled = false;
        }

        private void btSua_Click(object sender, EventArgs e)
        {
            if (tbMamon.Text.Trim() == "")
            {
                MessageBox.Show("Chọn môn học cần sửa!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (!validateMonhoc()) return;
            fun.suaMonHoc(tbMamon.Text.Trim(), tbTenmon.Text.Trim(), int.Parse(tbSotc.Text.Trim()));
            if (cbLythuyet.Checked)
                fun.themLythuyet(tbMamon.Text.Trim(), "LT", int.Parse(tbLythuyet.Text.Trim()));
            if (cbThuchanh.Checked)
                fun.themLythuyet(tbMamon.Text.Trim(), "TH", int.Parse(tbThuchanh.Text.Trim()));
            dgmonhoc.DataSource = fun.loadMonHoc();
            lb_thongbao.Text = "";
        }

        private void btHuy_Click(object sender, EventArgs e)
        {
            lb_thongbao.Text = "";
            btThem.Enabled = true;
            dgmonhoc.Enabled = true;
            btHuy.Enabled = false;
        }

        private void dgmonhoc_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            lb_thongbao.Text = "";
            if (dgmonhoc.RowCount == 0)
            {
                btSua.Enabled = false;
                btXoa.Enabled = false;
                return;
            }
            tbMamon.Text = dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["MA_MON"].Value.ToString().Trim();
            if (tbMamon.Text == "")
            {
                btXoa.Enabled = false;
                btSua.Enabled = false;
            }
            else
            {
                btSua.Enabled = true;
                btXoa.Enabled = true;
            }


            tbTenmon.Text = dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["TEN_MON"].Value.ToString();
            tbSotc.Text = dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["SO_TC"].Value.ToString();
            cbLythuyet.Checked = false; cbThuchanh.Checked = false;
            tbLythuyet.Text = ""; tbThuchanh.Text = "";
            if (dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["LT"].Value.ToString() != "" && int.Parse(dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["LT"].Value.ToString()) > 0)
            {
                cbLythuyet.Checked = true;
                tbLythuyet.Text = dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["LT"].Value.ToString();
            }
            if (dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["TH"].Value.ToString() != "" && int.Parse(dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["TH"].Value.ToString()) > 0)
            {
                cbThuchanh.Checked = true;
                tbThuchanh.Text = dgmonhoc.Rows[dgmonhoc.CurrentRow.Index].Cells["TH"].Value.ToString();
            }
        }
     
        private void tbTim_Click(object sender, EventArgs e)
        {            
            dgmonhoc.DataSource = fun.timMonHoc(cbLoai.SelectedIndex, tbNoidungTim.Text.Trim());
        }

        private void dgmonhoc_DataSourceChanged(object sender, EventArgs e)
        {
            lbSumrow.Text = "Tổng cộng: "+(dgmonhoc.RowCount -1).ToString() +" môn học.";
        }

        
    }    
}

